-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closures are recursively reachable #125996
Conversation
@bors r+ |
…ble, r=oli-obk Closures are recursively reachable
Rollup of 7 pull requests Successful merges: - rust-lang#125273 (bootstrap: implement new feature `bootstrap-self-test`) - rust-lang#125800 (Fix `mut` static task queue in SGX target) - rust-lang#125903 (rustc_span: Inline some hot functions) - rust-lang#125920 (Allow static mut definitions with #[linkage]) - rust-lang#125921 (coverage: Carve out hole spans in a separate early pass) - rust-lang#125995 (Use inline const blocks to create arrays of `MaybeUninit`.) - rust-lang#125996 (Closures are recursively reachable) r? `@ghost` `@rustbot` modify labels: rollup
@@ -157,6 +157,7 @@ impl<'tcx> ReachableContext<'tcx> { | |||
} | |||
hir::ImplItemKind::Type(_) => false, | |||
}, | |||
Node::Expr(&hir::Expr { kind: hir::ExprKind::Closure(..), .. }) => true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why isn't this:
Node::Expr(&hir::Expr { kind: hir::ExprKind::Closure(..), .. }) => true, | |
Node::Expr(&hir::Expr { kind: hir::ExprKind::Closure(hir::Closure { def_id, .. }), .. }) => recursively_reachable(def_id), |
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Closures are always recursively reachable, so a call to recursively_reachable
would be redundant.
Also is there a bug report or anything about this issue? Seems strange to have such little information attached to this PR 😅 |
The issue is from #122505 (comment). Opened a dedicated issue for tracking purposes #126012. |
…kingjubilee Rollup of 12 pull requests Successful merges: - rust-lang#123168 (Add `size_of` and `size_of_val` and `align_of` and `align_of_val` to the prelude) - rust-lang#125273 (bootstrap: implement new feature `bootstrap-self-test`) - rust-lang#125683 (Rewrite `suspicious-library`, `resolve-rename` and `incr-prev-body-beyond-eof` `run-make` tests in `rmake.rs` format) - rust-lang#125815 (`rustc_parse` top-level cleanups) - rust-lang#125903 (rustc_span: Inline some hot functions) - rust-lang#125906 (Remove a bunch of redundant args from `report_method_error`) - rust-lang#125920 (Allow static mut definitions with #[linkage]) - rust-lang#125982 (Make deleting on LinkedList aware of the allocator) - rust-lang#125995 (Use inline const blocks to create arrays of `MaybeUninit`.) - rust-lang#125996 (Closures are recursively reachable) - rust-lang#126003 (Add a co-maintainer for the two ARMv4T targets) - rust-lang#126004 (Add another test for hidden types capturing lifetimes that outlive but arent mentioned in substs) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#125996 - tmiasko:closure-recursively-reachable, r=oli-obk Closures are recursively reachable Fixes rust-lang#126012.
It's too late for 1.79.0, but this could be stable-nominated if needed. @rustbot label -beta-nominated -beta-accepted |
ok, then I'll stable nominate since there's another PR candidate for a stable backport (if a dot release will be considered) @rustbot +stable-nominated |
Clearing stable backport labels since we didn't ship a 1.79 point release, and this is already in current stable 1.80.0. @rustbot label -stable-nominated -stable-accepted |
Fixes #126012.